With increasing popularity of electronic devices, such as computers, smart phones, mobile devices, server farms, mainframe computers, and the like, the demand for more and faster data is constantly growing. To handle and facilitate voluminous data between such electronic devices, high speed NV memory devices are typically required. A conventional type of NV memory device, for example, is a flash memory based storage device such as solid-state drive (“SSD”).
The flash memory based SSD, for example, is an electronic NV computer storage device capable of maintaining, erasing, and/or reprogramming data. The flash memory can be fabricated with several different types of integrated circuit (“IC”) technologies such as NOR or NAND logic gates with, for example, floating-gate transistors. Depending on the applications, a typical memory access of flash memory can be configured to be a block, a page, a word, and/or a byte.
To properly map or translate between a logical block address (“LBA”) and a physical page address (“PPA”), a flash translation layer (“FTL”) is used in a flash memory based storage device. A conventional FTL translates between LBA to actual physical address or PPA of storage device. Note that LBA is used to address a block of data seeing by an input and output (“IO”) device of SSD while PPA is used to address a storage location where the block data is actually stored. A problem, however, associate with FTL or FTL database or FTL table is that the FTL database is large and it is typically difficult to recover if the storage device, for example, powers down unexpectedly.